In scheduling optimization domain, there are a number of constraints that vary over time. For example, a resource may only be available certain hours each work day, may have work shifts etc. During working or non-working hours, a resource may have different types of commitments or breaks, e.g., blocking appointments, non-blocking tasks, lunch break or vacations. There are other complexities such as a resource may be more effective during mornings than during afternoons. There needs to be a generic way to represent different types of constraints by a generic type that can be aggregated or re-cursed over time and that can be evaluated for type specific values for each expanded instance.